<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<script type="text/javascript">
			/*
				创建一个构造函数，专门用来创建Person对象的
					构造函数就是一个普通的函数创建方式和普通函数没有区别
					不同的是构造函数习惯首字母大写
				构造函数和普通函数的区别就是调用方法的不同
					普通函数是之间调用，而构造函数需要使用关键字new来调用
				构造函数的执行流程：
					1.立刻创建一个新的对象
					2.将新的对象设置为this，在构造函数中可以使用this来引用新建的对象
					3.逐步执行函数中的代码
					4.将新建的对象作为函数的返回值返回
				使用同一个构造函数构建对象，我们城为一类对象，也将一个构造函数成为一个类。
					我们通过一个构造函数创建对象，成为是该类的一个实例
				this 的情况：
					1.当以函数的形式调用时，this时window
					2.当以方法的形式调用时，this时对象
					3.当以构造函数的方法调用时，this就是新建的对象
				例子：
					function Person(name , age , gender){
								   this.name = name;
								   this.age = age;
								   this.gender = gender;
								   this.sayName = function(){
									   alert("大家好，我是"+name)
								   } 
					}
					var per = new Person("小明",18,"男");
				原型 prototype
					我们创建的每一个函数解析器都会在函数中添加一个属性prototype
					prototype就是一个原型对象
					如果函数	作为普通函数调用prototype没有任何作用
					        作为构造函数调用时，他所创建的对象都会指向这个对象
								指向这个函数的原型对象我们可以通过_proto_来访问该属性
					原型对象相当于一个公共的区域，所有的实例都可以访问到这个对象
						我们可以把公共的内容，统一设置到原型对象中
					当我们访问对象的一个属性或者方法时	，我们会先在对象中寻找，如果有之间使用
						如果没有则回去原型对象中寻找，如果找到则直接使用
					原型中可以添加属性也可以添加方法
						例子
							sun.prototype.sai = funtion(){
								alert("Hello");
							}
							sun.sai();
							这样的话我们并没有在sun中添加新的方法但是可以通过prototype中添加
							长用于创造构建函数，可以将这些对象共有的属性和方法，统一添加到构造函数的原型中，
							这样就不用分别在每一个对象中添加，也不会影响到全局作用域，就可以使每个对象都具有这些属性和方法
							而且可以通过在函数中定义来覆盖
					当使用in检查对象中是否含有某个属性时，如果对象中没有但是原型中有，也会返回true	
						例子
							function MyClass(){
								
							}
							MyClass.prototype.name = "wangzichu";
							var ma = new MyClass();
							console.log("name" in ma);
							会发现他的返回值为true
					着就会出现问题所以我们应该使用hasOwnProperty()来检查对象自身中是否含有该属性
						使用该方法可以检查对象自身是否有这个属性，才会返回true
							console.log(ma.hasOwnProperty("name"));
					原型对象也有原型
						当我们使用一个对象或者方法时，会现在自身寻找，
							如果自身中有，则直接使用，
							如果没有则去原型对象中寻找，如果原型对象有，则使用
							如果没有则去原型的原型中寻找，如果有则使用，直到找到object对象的原型
							如果在object没有找到，则返回undefined
							
			*/
		   if(){}
		</script>
	</head>
	<body>
	</body>
</html>
